package com.dongjiantong.farmrecords.service;

import com.dongjiantong.common.web.sso.LoginInfo;
import com.dongjiantong.farmrecords.model.FarmRecordsRetailProduction;
import com.dongjiantong.mybatis.BaseService;
import com.github.pagehelper.PageInfo;

import java.util.Map;

/**
 * 散户养殖档案-生产记录
 * @author Lee
 * @date 2018/1/14
 */
public interface FarmRecordsRetailProductionService extends BaseService<FarmRecordsRetailProduction> {
    /**
     * /**
     * (政府端)
     * 根据养殖场id,起止时间或者状态查询散户生产记录 (条件都可以为空,表示查询所有)
     * @param pageNum
     * @param pageSize
     * @param map
     * @return
     */
    PageInfo<FarmRecordsRetailProduction> selectByMap(Integer pageNum, Integer pageSize, Map map);

    /**
     * (养殖端)
     * 根据提交状态分页查询列表
     * @param farmId
     * @param status
     * @return
     */
    PageInfo<FarmRecordsRetailProduction> selectListByStatus(Integer pageNum, Integer pageSize, Integer status, Long farmId);

    /**
     * 新增一条散户生产记录
     * @param loginInfo
     * @param farmRecordsRetailProduction
     * @param toStatus
     * @param isFrom
     * @return
     */
    Long createOne(LoginInfo loginInfo, FarmRecordsRetailProduction farmRecordsRetailProduction, Integer toStatus, Integer isFrom);

    /**
     * 根据单据编号或者单据id 更新一条单据
     */
    Integer updateByIdOrNumber(FarmRecordsRetailProduction farmRecordsRetailProduction, Integer toStatus);

    /**
     * (政府端)
     * 根据养殖场id 动物畜种查询存栏变动数合计
     * @param farmId
     * @param breedSecondType
     */
    Integer selectQuantityChangeByFarmId(Long farmId, Integer breedSecondType);

    /**
     * 根据动物畜种查看存栏变动合计
     * @param userId
     * @param breedSecondType
     * @return
     */
    Integer selectQuantityChangeByGovAndBreedType(Long userId, Integer breedSecondType);
}
